package com.eastfair.certificate.service;

import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.boot.service.SuperService;
import com.eastfair.certificate.entity.FormFieldSubsystem;

import java.util.List;

import com.eastfair.certificate.vo.*;
import com.eastfair.certificate.dto.*;
import com.eastfair.core.base.R;

/**
 * <p>
 * 业务接口
 * 动态表单
 * </p>
 *
 * @author ligang
 * @date 2023-05-17
 */
public interface FormFieldSubsystemService extends SuperCacheService<FormFieldSubsystem> {


    /**
     * 校验表单信息
     *
     * @param formFieldSubsystemVOS 校验参数
     * @return 校验结果
     */
    R<String> checkFormFieldInfo(List<FormFieldSubsystemVO> formFieldSubsystemVOS);

    /**
     * 修改表单配置
     *
     * @param formFieldSubsystemDTO 表单实体
     * @return 是否成功
     */
    R<Boolean> updateFormField(FormFieldSubsystemDTO formFieldSubsystemDTO);

    /**
     * 重新排序
     *
     * @param formFieldSubsystem
     * @param sequence
     * @return
     */
    R updateSequece(FormFieldSubsystem formFieldSubsystem, int sequence);


    /**
     * do转vo
     *
     * @param model
     */
    FormFieldSubsystemVO doToVo(FormFieldSubsystem model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<FormFieldSubsystemVO> doToVos(List<FormFieldSubsystem> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<FormFieldSubsystem> list(FormFieldSubsystemDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<FormFieldSubsystem> listOfCache(FormFieldSubsystemDTO modelDTO, List<Long> ids);

    R<List<FormFieldSubsystemVO>> listDynamicFrom(FormFieldSubsystemDTO formFieldSubsystemDTO);
}
